iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
AI/ ML & Data

【AI筆記】30天從論文入門到 Pytorch 實戰系列 第 12

【AI筆記】30天從論文入門到 Pytorch 實戰:生成圖像技術概覽 Day11

  • 分享至 

  • xImage
  •  

生成圖像模型

常見的模型架構

  • 生成對抗網路(GAN, Generative Adversarial Network):GAN 由生成器(Generator)和判別器(Discriminator)兩個部分組成。生成器負責生成圖像,而判別器則負責判斷生成的圖像是否真實。這兩個部分相互對抗,不斷提升生成圖像的品質。
  • 變分自編碼器(VAE, Variational Autoencoder):VAE 是一種自編碼器,它通過將輸入資料壓縮到潛在空間(latent space),然後再從潛在空間重建資料來生成圖像。這種方法可以生成多樣性較高的圖像。
  • 擴散模型(Diffusion Model):擴散模型是一種較新的生成模型,它通過逐步去除噪音來生成圖像。這種方法可以生成高質量且多樣性高的圖像。著名的擴散模型包括 Stable Diffusion 和 DALL·E 系列。
  • 自回歸模型(Autoregressive Model):這種模型通過逐步生成圖像的每一個像素來實現圖像生成。每一步生成的像素都依賴於之前生成的像素。DALL·E 也使用了這種方法。

VAE

Encoder: input x 分出 mean, std,融合成 latent space z (z維度比input維度低)
Decoder: 把 z 重建回 x space

優點

  • 生成速度快,能夠生成多樣性高的圖像。
  • 訓練過程相對穩定,容易收斂。
  • 可以直接比較重建圖像和原始圖像的差異。

缺點

  • 生成的圖像質量可能不如 GAN 高,容易產生模糊的圖像。

    VAE 在訓練過程中使用重建損失(reconstruction loss),這種損失函數鼓勵模型生成與原始數據平均特性相似的圖像,這樣會犧牲一些細節,導致生成的圖像可能會比較模糊。

  • 生成的圖像可能缺乏細節和真實感。

    由於 VAE 的潛在空間(latent space)通常是高斯分佈的混合,這使得生成的圖像在細節和真實感上可能不如 GAN(生成對抗網絡)。GAN 通過生成器和判別器的對抗訓練,可以生成更真實、更細緻的圖像。

GAN

優點

  • 能夠生成高質量且逼真的圖像。
  • 訓練過程中生成器和判別器相互對抗,提升生成效果。
  • 適用於多種應用,如圖像生成、圖像修復、風格轉換等。

缺點

  • 訓練過程可能不穩定,容易出現模式崩潰(mode collapse)。

    因為是由 Discriminator 判斷是否生成正確,如果 Generator 騙了 Discriminator 就變成訓練失敗。

  • 需要大量的計算資源和時間來訓練。

    同時需要訓練兩個神經網路,如果訓練失敗要重新來。

  • 訓練資料缺乏多樣性。
  • 僅專注於自然場景,因此無法進行多種跨模態特徵對齊,從而生成不真實影像或奇怪姿勢。

Diffusion Model

優點

  • 能夠生成高質量且逼真的圖像。
  • 訓練過程相對簡單,容易收斂。
  • 擁有良好的理論基礎,生成過程更加可解釋和穩定。

缺點

  • 訓練過程需要大量的計算資源和時間。

    這是因為 Diffusion Model 需要多次還原過程,每次都需要經過神經網路的計算。這樣的多次迭代使得訓練過程非常耗時和耗資源。

  • 可能存在過度生成或生成重複圖像的問題。
  • 對於一些細節和語義信息不夠準確,需要進一步改進。

    所以出現了 ControlNet 和 T2I-Adapter 去改善生成品質

自回歸模型(Autoregressive Model)

優點

  • 能夠逐步生成圖像的每一個像素,生成過程可控。
  • 適用於生成高質量的圖像和序列資料。
  • 訓練過程相對簡單,容易收斂。

缺點

  • 生成速度較慢,因為需要逐步生成每一個像素。

    自回歸模型需要逐步生成每一個像素或資料點,這使得生成過程相對較慢。這種逐步生成的方式雖然可控,但在處理大規模資料時可能會變得非常耗時。

  • 生成的圖像可能缺乏全局一致性和細節。

    由於自回歸模型是逐步生成的,每一步只考慮前一步的結果,這可能導致生成的圖像缺乏全局一致性和細節。這種局部生成的方式可能會忽略整體結構和細節。
    生成方式為從圖像左上方開始一個pixel一個pixel的生成,都是以前一個pixel為參考生成下一個,雖然能夠生成複雜的影像,但沒有顧及到附近pixel的關聯性

  • 對於長序列資料的生成可能存在困難。

    對於長序列資料,自回歸模型可能會遇到困難,因為隨著序列長度的增加,模型需要考慮的上下文信息也會增加,這可能導致生成的品質下降。
    在訓練時是以teacher forcing的方式,但test時是以t-1時的output當作t的input,因此可能會有累積的誤差


上一篇
【AI筆記】30天從論文入門到 Pytorch 實戰:使用Github高效管理專案 Day 10
下一篇
【AI筆記】30天從論文入門到 Pytorch 實戰:Diffusion Model 的基本介紹 Day 12
系列文
【AI筆記】30天從論文入門到 Pytorch 實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言